Computing systems may include multiple peripheral devices. Peripheral devices may extend, adapt, and/or modify the functionality of the computing system. A peripheral device may implement one or more functions. For example, a peripheral device can be a network interface card that provides network connectivity functions, or a mass storage device that provides data storage functions, etc.
Some peripheral devices may include configuration registers that are used to control the behavior of the peripheral device. For example, if the peripheral device is a Peripheral Component Interconnect (PCI) compliant device, the peripheral device may have a set of PCI configuration space registers. The configuration registers may include fields that can be read to indicate the capabilities of the peripheral device, and may include fields that can be written to enable, disable, or alter functions of the peripheral device. Generally, configuration registers are implemented as physical hardware registers, and the fields are defined and hardcoded according to the particular capabilities and functions of the peripheral device. Thus, once manufactured, the definition of the configuration registers of the peripheral device is typically fixed and cannot be changed.